/*
    整体代码量 比较少 
    你如果不想写返回值，可以更改函数返回值类型
    然后直接输出也可以
    因为代码没什么难度 
    把 主函数写了 ！
*/

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

const int MAX_SIZE = 3;

/*
    一个用来表示栈的数组 
    和一个栈顶指针
*/
typedef struct s {
}Stack;


/*
    初始化 判断 然后栈顶指针置为-1 
    最后返回即可 
    为什么初始化要指到-1  
    数组索引从0 开始 到0刚开始入栈
*/
Stack* initStack();

/*
    判断是否为空
    只需要看一下栈顶指针指在什么位置即可
    如果 是 -1那就还是空的
*/
bool isEmpty(Stack* stack);


/*
    判断是否是满的
    还是看栈顶指针，判断是否等于最大长度-1 
    为什么还是 -1 因为最开始置为了-1 
*/
bool isFull(Stack* stack);


/*
    直接返回top + 1 
*/
int getSize(Stack* stack);

/*
    入栈
    首先判断是否是满的
    不满 就向里面推data 
    让栈顶指针前移 指到的位置 赋值即可
*/
void push(Stack* stack,int data);

/*
    出栈
    首先判断是否为空 空了无法出 
    不空 拿到原本头的元素后 栈顶指针后移
    返回获取到的元素即可 
*/
int pop(Stack* stack);


/*
    判断是否为空
    不空 直接返回栈顶指针指向的元素即可 
*/
int peak(Stack* stack);



int main(){

}